package com.Singleton;

public class SingletonDemo3 {

	private SingletonDemo3() {
		/*
		 * 使用内部类的好处是，静态内部类不会在单例加载时就加载， 而是在调用getInstance()方法时才进行加载内部类，达到了类似懒汉模式的效果，
		 * 而这种方法又是线程安全的。
		 */
	}

	private static class SingletonHolder {
		private static SingletonDemo3 instance = new SingletonDemo3();

	}

	public static SingletonDemo3 getInstance() {
		return SingletonHolder.instance;// 静态方法只有访问外面静态的成员，所以instance必须是静态的
	}// 在调用静态内部类singleonholder时候就会加载
	// 静态内部类的静态成员，于是就会有了实例化instance
	// 保证除了getinstance方法外其他类中的成员都是private的
}
